overview
  
  next
  
Linux für Anwendungsentwicklung
  previous
  nextDozent
  
  - Paul Hänsch
- Seit 2012 freiberuflicher Programmierer
- Arbeit an und mit Freier Software (Open Source)
- Kunden: Jugendclub, Kinderzirkus, Kulturserver, ...
- in der Vergangenheit: Free Software Foundation Europe
- Videopodcast: GNUfunzt! http://gnufunzt.de
- Kontakt: Paul.Haensch@damago.eu
Organisatorisches zum Kurs
  
  - 9 Termine
- 8:00 bis 15:15 Uhr
- Letzter Termin 3.5.
- Pausenzeiten?
- Themenübersicht - Nach der Einführung
Vorstellungsrunde
  
  - Wie seid ihr zu der Umschulung gekommen?
- Wie habt ihr bisher programmiert?
- Welches kleine Programm wolltet ihr immer schonmal schreiben?
Was ist ein Betriebssystem?
 previous
  
  nextWas ist ein Betriebssystem?
  
  Funktionen eines Betriebssystems
  
  Begriffe
  
  GNU Desktop Unix 
  Ubuntu Linux Distribution
  Gnome Knoppix
  
  Was ist eine Distribution?
  
  Beispiele für Distributionen
  
  - Ubuntu - Kommerzielle Distribution basierend auf Debian
- Debian - Frühe Distribution mit Online-Paketsystem
- Gentoo - Zusammenstellung von Quellcode zum selbst anpassen
- Arch - Verbreitete Distribution mit eigenem Paketsystem
- Knoppix - Debian basiertes Live-System
- Fedora, RedHat, Suse, Parabola, Puppy, Rebecca Black, ...
- Tausende weitere
Desktopumgebungen
  Grafische Bedienoberflächen können sehr unterschiedlich aussehen
  
  - Gnome
- KDE
- LXDE
- Xfce
- Maté, i3, Awesome, WindowMaker, LXQT, Enlightenment, usw...
- Unterscheidung: Window Manager, Toolkit, Softwaresuite
Weitere Begriffe
  
  - Android: anderes Betriebssystem mit Linux-Kernel
- BSD: Berkeley Software Distribution, anderes Freies Unix
- Busybox: andere Suite von Unix-Dienstprogrammen
Themenübersicht
previous
  
  nextprevious
  
  nextWeitere Themen
  
  - Prozessmanagement
- Vertiefung Kommandozeile, Shellscripting
- Datenträger, Dateisysteme, Partitionen
- Systemstart
- Paketsysteme, Softwareinstallation, Systeminstallation
- Netzwerk, SSH
- nach Wunsch Android, X11, Verschlüsselung, Internetdienste, Versionskontrolle, Gameserver,..., Scripting, Programmierunmgebungen, Webentwicklung
- Installparty?Ihr könnt eure eigenen Notebooks mitbringen.
Arbeit mit Dateien
  ~$ touch datei1
  Arbeit mit Dateien
  
  ~$ ls -l datei1
  -rw-r--r-- 1 live live 0 Apr 10 02:13 datei1
  Arbeit mit Dateien
  ~$ echo "Hallo Welt!" > datei1
  Arbeit mit Dateien
  
  ~$ ls -l datei1
  -rw-r--r-- 1 live live 12 Apr 10 02:13 datei1
  Arbeit mit Dateien
  ~$ cat datei1
  Arbeit mit Dateien
  
  ~$ touch datei1
  ~$ ls
  datei1
  ~$ ls -l datei1
  -rw-r--r-- 1 live live 0 Apr 10 02:13 datei1
  ~$ echo "Hallo Welt!" > datei1
  ~$ ls -l datei1
  -rw-r--r-- 1 live live 12 Apr 10 02:13 datei1
  ~$ cat datei1
  Hallo Welt!
  ~$ _
  
  Arbeit mit Dateien
  
  ~$ ls -l /bin/bash
  -rwxr-xr-x 1 root root 1168776 Apr 18 06:12 /bin/bash
  Arbeit mit Dateien
  ~$ ls -l -h /bin/bash
  Arbeit mit Dateien
  -rwxr-xr-x 1 root root 1.2M Apr 18 06:12 /bin/bash
  Zusammenfassung
  
  - touch legt eine Datei an
- ls zeigt Informationen über eine Datei
Zusammenfassung
  
  - Kommandos lassen sich parametrisieren, z.B. ls -l undls -h 
Zusammenfassung
  
  - mit echo können wir textin eine Datei schreiben
Zusammenfassung
  
  - cat zeigt den Inhalt von Dateien an
Zusammenfassung
  touch
  ls
  ls -l -h
  echo
  cat
  Zugriffsrechte
previous
  
  nextZugriffsrechte
  ~$ ls -l datei1
  -rw-r--r-- 1 live live 12 Apr 10 02:13 datei1
  
  | Typ | Eigentümer | Gruppe | Andere | 
|---|
  | - | rw- | r-- | r-- | 
  
  Zugriffsrechte
  ~$ ls -l /bin/cat
  -rwxr-xr-x 1 root root 34676 Feb 22 2017 /bin/cat
  
  | Typ | Eigentümer (root) | Gruppe (root) | Andere | 
|---|
  | - | rwx | r-x | r-x | 
  
  Zugriffsrechte
  
  ~$ chmod u-r datei1
  ~$ ls -l datei1
  --w-r--r-- 1 live live 12 Apr 10 02:13 datei1
  
  | Typ | Eigentümer | Gruppe | Andere | 
|---|
  | - | -w- | r-- | r-- | 
  
  Zugriffsrechte
  
  ~$ cat datei1
  cat: datei1: Keine Berechtigung
  Zugriffsrechte
  
  ~$ chmod u+r datei1
  ~$ cat datei1
  Hallo Welt!
  Zugriffsrechte - Gruppen
  
  ~$ groups
  live sudo video input
  Zugriffsrechte - Gruppen
  
  ~$ chgrp video datei1
  ~$ ls -l datei1
  -rw-r--r-- 1 live video 12 Apr 10 02:13 datei1
  Navigation im Dateisystem
previous
  
  nextNavigation im Dateisystem
  
  ~$ pwd
  /home/live
  Navigation im Dateisystem
  
  ~$ cd .
  ~$ pwd
  /home/live
  Navigation im Dateisystem
  
  ~$ cd ..
  ~$ pwd
  /home
  Navigation im Dateisystem
  
  ~$ cd ..
  ~$ pwd
  /
  ~$ ls
  bin etc media proc sys var boot home mnt
  root tmp dev lib opt sbin usr
  Navigation im Dateisystem
  
  ~$ ls bin
  ~$ ls etc
  ~$ ls dev
   
  Navigation im Dateisystem
  
  Navigation im Dateisystem
  
  Systemordner in Unix
  
  - /bin enthält ausführbare Programme
- /boot enthält den Systemkernel und Dateien, die damit unmittelbar in Zusammenhang stehen
- /etc enthält systemweite Konfigurationsdateien
- /home enthält Heimverzeichnisse der Benutzer
- /lib enthält sogenannte Softwarebibliotheken
- /media wird benutzt um temporäre Medien wie CDs und USB-Sticks abzubilden
- /var enthält Dateien, die sich ohne Handlung des Benutzers im regulären Betrieb verändern (z.B. Logbücher)
- /usr enthält weitere /bin und /lib Verzeichnisse für weniger grundlegende Programme
Syntax der Kommandozeile
previous
  
  nextSyntax der Kommandozeile
  ~$ echo Hallo Welt
  Syntax der Kommandozeile
  Ein Parameter:
  ~$ echo "Hallo        Welt"
  ~$ echo Hallo"       "Welt
  
  
  | Shellprompt | Befehl | Parameter 1 | 
  | ~$ | echo | Hallo        Welt | 
  
  Syntax der Kommandozeile
  Drei Parameter
  ~$ echo Hallo "       " Welt
  ~$ echo "Hallo" "       " "Welt"
  
  
  | Shellprompt | Befehl | Parameter 1 | Parameter 2 | Parameter 3 | 
  | ~$ | echo | Hallo |   | Welt | 
  
  Syntax der Kommandozeile
  Folie vom ersten Kurstag:
  ~$ echo "Hallo Welt!" > datei1
  Syntax der Kommandozeile
  
  Folie vom ersten Kurstag:
  - mit echo können wir textin eine Datei schreiben
Syntax der Kommandozeile
  
  
  | Shellprompt | Befehl | Parameter 1 | Umleitung | Ziel der Umleitung | 
  | ~$ | echo | Hallo Welt! | > | datei1 | 
  
  Arbeit mit Dateien und Pfaden
previous
  
  nextArbeit mit Dateien und Pfaden
  
  Arbeit mit Dateien und Pfaden
  
  Arbeit mit Dateien und Pfaden
  
  
  | Shellprompt | Befehl | Parameter 1 | Parameter 2 | 
  | ~$ | mv | datei1 | ordner1 | 
  
  
  
  | Shellprompt | Befehl | Parameter 1 | Parameter 2 | Parameter 3 | 
  | ~$ | mv | datei2 | datei3 | ordner2 | 
  
  Arbeit mit Dateien und Pfaden
  
  Arbeit mit Dateien und Pfaden
  
  - ~$ ls ordner1 
- ~$ cd ordner1 
- ~/ordner1$ ls 
- ~/ordner1$ ls ordner1 
- Wir sind in ordner1, dieser Ordner enthält nicht seinerseits einen ordner1
Arbeit mit Dateien und Pfaden
  ~/ordner1$ ls /home/live/ordner1
  funktioniert immer => absoluter Pfad
  
Arbeit mit Dateien und Pfaden
  
  Arbeit mit Dateien und Pfaden
  ~/ordner1$ cp datei1 "Name mit Leerzeichen"
  Arbeit mit Dateien und Pfaden
  
  Arbeit mit Dateien und Pfaden
  
  ~/ordner1$ mv Name_ohne_Leerzeichen ..
  ~/ordner1$ mv ../Name_ohne_Leerzeichen .
  Arbeit mit Dateien und Pfaden
  
  ~/ordner1$ mv ../ordner2/datei2 .
  ~/ordner1$ mv /home/live/ordner2/datei3 .
  Arbeit mit Dateien und Pfaden
  
  ~/ordner1$ cd /home/live
  ~$ rmdir ordner2
  Arbeit mit Dateien und Pfaden
  
  ~$ rmdir ordner1
  Arbeit mit Dateien und Pfaden
  
  ~$ rm ordner1
  Arbeit mit Dateien und Pfaden
  
  ~$ rm ordner1/datei2
  Arbeit mit Dateien und Pfaden
  
  ~$ rm -r ordner1/